<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of DaoCirugiaAmbulatorio
 *
 * @author amartinez
 */
include_once '../../controlador/php/conexion/Conexion.php';

class DaoSolicitudCirugia{
    private $PacienteOid;
    private $EstadoQxOid;
    private $PacienteDocumento;
    private $AreaServicio;
    private $Especialidad;
    private $Telefono;
    private $CorreoElectronico;
    private $Direccion;
    private $FechaSolicitud;
    private $FechaVencimiento;
    private $FechaRegistro;
    private $Observaciones;
    private $CamaOid;
    private $ReservaUCI;
    private $ReservaSangre;
    private $Insumo;
    private $Material;
            
    function __construct($PacienteOid,$EstadoQxOid,$PacienteDocumento,$AreaServicio,$Especialidad,$Telefono,$CorreoElectronico,$Direccion,$FechaSolicitud,$FechaVencimiento,$FechaRegistro,$Observaciones,$CamaOid,$ReservaUCI,$ReservaSangre,$Insumo,$Material) {
        $this->PacienteOid = $PacienteOid;
        $this->EstadoQxOid = $EstadoQxOid;
        $this->PacienteDocumento = $PacienteDocumento;
        $this->AreaServicio = $AreaServicio;
        $this->Especialidad = $Especialidad;
        $this->Telefono = $Telefono;
        $this->CorreoElectronico = $CorreoElectronico;
        $this->Direccion = $Direccion;
        $this->FechaSolicitud = $FechaSolicitud;
        $this->FechaVencimiento = $FechaVencimiento;
        $this->FechaRegistro = $FechaRegistro;
        $this->Observaciones = $Observaciones;
        $this->CamaOid = $CamaOid;
        $this->ReservaUCI = $ReservaUCI;
        $this->ReservaSangre = $ReservaSangre;
        $this->Insumo = $Insumo;
        $this->Material = $Material;
    }
    
    public function getPacienteOid(){
        return $this->PacienteOid;
    }
    public function getEstadoQxOid(){
        return $this->EstadoQxOid;
    }
    public function getPacienteDocumento(){
        return $this->PacienteDocumento;
    }
    public function getAreaServicio(){
        return $this->AreaServicio;
    }
    public function getEspecialidad(){
        return $this->Especialidad;
    }
    public function getTelefono(){
        return $this->Telefono;
    }
    public function getCorreoElectronico(){
        return $this->CorreoElectronico;
    }
    public function getDireccion(){
        return $this->Direccion;
    }
    public function getFechaSolicitud(){
        return $this->FechaSolicitud;
    }
    public function getFechaVencimiento(){
        return $this->FechaVencimiento;
    }
    public function getFechaRegistro(){
        return $this->FechaRegistro;
    }
    public function getObservaciones(){
        return $this->Observaciones;
    }
    public function getCamaOid(){
        return $this->CamaOid;
    }
    public function getReservaUCI(){
        return $this->ReservaUCI;
    }
    public function getReservaSangre(){
        return $this->ReservaSangre;
    }
    public function getInsumo(){
        return $this->Insumo;
    }
    public function getMaterial(){
        return $this->Material;
    }
    public function setPacienteOid($PacienteOid){
        $this->PacienteOid = $PacienteOid;
    }
    public function setEstadoQxOid($EstadoQxOid){
        $this->EstadoQxOid = $EstadoQxOid;
    }
    public function setPacienteDocumento($PacienteDocumento){
        $this->PacienteDocumento = $PacienteDocumento;
    }
    public function setAreaServicio($AreaServicio){
        $this->AreaServicio = $AreaServicio;
    }
    public function setEspecialidad($Especialidad){
        $this->Especialidad = $Especialidad;
    }
    public function setTelefono($Telefono){
        $this->Telefono = $Telefono;
    }
    public function setCorreoElectronico($CorreoElectronico){
        $this->CorreoElectronico = $CorreoElectronico;
    }
    public function setDireccion($Direccion){
        $this->Direccion = $Direccion;
    }
    public function setFechaSolicitud($FechaSolicitud){
        $this->FechaSolicitud = $FechaSolicitud;
    }
    public function setFechaVencimiento($FechaVencimiento){
        $this->FechaVencimiento = $FechaVencimiento;
    }
    public function setFechaRegistro($FechaRegistro){
        $this->FechaRegistro = $FechaRegistro;
    }
    public function setObservaciones($Observaciones){
        $this->Observaciones = $Observaciones;
    }
    public function setCamaOid($CamaOid){
        $this->CamaOid = $CamaOid;
    }
    public function setReservaUCI($ReservaUCI){
        $this->ReservaUCI = $ReservaUCI;
    }
    public function setReservaSangre($ReservaSangre){
        $this->ReservaSangre = $ReservaSangre;
    }
    public function setInsumo($Insumo){
        $this->Insumo = $Insumo;
    }
    public function setMaterial($Material){
        $this->Material = $Material;
    }
    
    function RegistrarCirugia($ListaInsumo,$ListaMaterial,$Cirujano){
        $ObjConexion = new Conexion();
        
        session_start();
        
        $stmt = mssql_init('Usp_QxIngSolicitudCirugia');
        $OidRegistro = 0;
        
        mssql_bind($stmt, '@PACIENTEOID', $this->PacienteOid, SQLINT4);
        mssql_bind($stmt, '@ESTADOQXOID', $this->EstadoQxOid, SQLINT4);
        mssql_bind($stmt, '@PACIENTEDOCUMENTO', $this->PacienteDocumento, SQLVARCHAR);
        mssql_bind($stmt, '@AREASERVICIOOID', $this->AreaServicio, SQLINT4);
        mssql_bind($stmt, '@ESPECIALIDAD', $this->Especialidad, SQLINT4);
        mssql_bind($stmt, '@TELEFONOPPAL', $this->Telefono, SQLVARCHAR);
        mssql_bind($stmt, '@CORREOELECTRONICO', $this->CorreoElectronico, SQLVARCHAR);
        mssql_bind($stmt, '@DIRECCIONPPAL', $this->Direccion, SQLTEXT);
        mssql_bind($stmt, '@FECHASOLICITUDEPS', $this->FechaSolicitud, SQLVARCHAR);
        mssql_bind($stmt, '@FECHAVENCIMIENTO', $this->FechaVencimiento, SQLVARCHAR);
        mssql_bind($stmt, '@FECHAREGISTRO', $this->FechaRegistro, SQLVARCHAR);
        mssql_bind($stmt, '@OBERVACIONES', $this->Observaciones, SQLTEXT);
        mssql_bind($stmt, '@CamaOid',  $this->CamaOid, SQLVARCHAR);
        mssql_bind($stmt, '@USUSOLICITO',  $_SESSION['usuario'], SQLVARCHAR);
        mssql_bind($stmt, '@RESERVAUCI', $this->ReservaUCI, SQLINT4);
        mssql_bind($stmt, '@REQUIERESANGRE', $this->ReservaSangre, SQLINT4);
        mssql_bind($stmt, '@INSUMOS', $this->Insumo, SQLINT4);
        mssql_bind($stmt, '@METERIALOSTEOSINTESIS', $this->Material, SQLINT4);
        mssql_bind($stmt, '@DotorOid', $Cirujano, SQLINT4);
        mssql_bind($stmt, 'RETVAL', $OidRegistro, SQLINT4);
        
        mssql_execute($stmt);
        mssql_free_statement($stmt);
        
        $EliminarInsumo = "DELETE FROM Qx_InsumosSolicitud WHERE SolicitudOid ='".$OidRegistro."'";
        $ObjConexion->query($EliminarInsumo);

        $i = 0;
        $Lista = count($ListaInsumo);

        while ($i < $Lista){

            $GuardarInsumos = "INSERT INTO Qx_InsumosSolicitud(SolicitudOid,InsumosOid,usu_registro)
                               VALUES ('".$OidRegistro."','".$ListaInsumo[$i]."','".$_SESSION['usuario']."')";
            $ObjConexion ->query($GuardarInsumos);

            $i++;
        }
        
        $EliminarMaterial = "DELETE FROM Qx_MaterialSolicitud WHERE SolicitudOid ='".$OidRegistro."'";
        $ObjConexion->query($EliminarMaterial);

        $j = 0;
        $ListaMaterialO = count($ListaMaterial);

        while($j < $ListaMaterialO){

            $GuardarMaterial = "INSERT INTO Qx_MaterialSolicitud(MaterialOid,SolicitudOid,usu_registro)
                               VALUES('".$ListaMaterial[$j]."','".$OidRegistro."','".$_SESSION['usuario']."')";
            $ObjConexion ->query($GuardarMaterial);

            $j++;
        }
        print_r(json_encode($OidRegistro));
        
        $ObjConexion ->cerrarConexion();
    }
    
    function ConsultarTiket($OidRegistro){
        $ObjConexion = new Conexion();
        
        $ConsultarTiket = "SELECT * FROM Qx_RegistroTiket WHERE Oid = '".$OidRegistro."'";
        $Result = $ObjConexion ->query($ConsultarTiket);
        
        while ($Resultado = mssql_fetch_array($Result)){
            
            $CantidadTiket = $Resultado['TIKETS'];
            $Lista[] = array_map(utf8_encode, $Resultado);
        }
        $NumeroTiket = $CantidadTiket + 1;
        
        $EditarTiket = "UPDATE Qx_SolicitudProgramacion
                        SET CantidadTikets ='".$NumeroTiket."'
                        WHERE Oid ='".$OidRegistro."'";
        $ObjConexion ->query($EditarTiket);
        
        print_r(json_encode($Lista));
        
        $ObjConexion ->cerrarConexion();
    }
    
    function EditarCirugia($OidRegistro,$PacienteOid, $EstadoQxOid, $PacienteDocumento, $AreaServicio, $Especialidad, $Telefono, $CorreoElectronico, $Direccion, $FechaSolicitud, $FechaVencimiento, $Observaciones, $CamaOid,$ReservaUCI,$ReservaSangre,$Insumo,$Material,$ListaInsumo,$ListaMaterial){
        
        $ObjConexion = new Conexion();
        
        session_start();
        if($EstadoQxOid = 2){
            $EditarTipo =  ',TipoCirugiaOid = 3';
        }else{
            $EditarTipo =  '';
        }
        $Editar = "UPDATE Qx_SolicitudProgramacion
                   SET PacienteOid = '".$PacienteOid."',
                       EstadoQxOid = '".$EstadoQxOid."',
                       PacienteDocumento = '".$PacienteDocumento."',
                       AreaServicioOid = '".$AreaServicio."',
                       EspecialidadOid = '".$Especialidad."',
                       TelefonoPpal = '".$Telefono."',
                       CorreoElectronico = '".$CorreoElectronico."',
                       DireccionPpal = '".$Direccion."',
                       FechaSolicitudEps = '".$FechaSolicitud."',
                       FechaVencimiento = '".$FechaVencimiento."',
                       ObservacionGral = '".$Observaciones."',
                       UsuModifico = '".$_SESSION['usuario']."',
                       ReservaCamaUci = '".$ReservaUCI."',
                       RequiereSangre = '".$ReservaSangre."',
                       Insumos = '".$Insumo."',
                       MaterialOsteosintesis = '".$Material."'
                       $EditarTipo
                  WHERE Oid ='".$OidRegistro."'";
        $ObjConexion ->query($Editar);
     
        $EliminarInsumo = "DELETE FROM Qx_InsumosSolicitud WHERE SolicitudOid ='".$OidRegistro."'";
        $ObjConexion->query($EliminarInsumo);

        $i = 0;
        $Lista = count($ListaInsumo);

        while ($i < $Lista){

            $GuardarInsumos = "INSERT INTO Qx_InsumosSolicitud(SolicitudOid,InsumosOid,usu_registro)
                               VALUES ('".$OidRegistro."','".$ListaInsumo[$i]."','".$_SESSION['usuario']."')";
            $ObjConexion ->query($GuardarInsumos);

            $i++;
        }
        $EliminarMaterial = "DELETE FROM Qx_MaterialSolicitud WHERE SolicitudOid ='".$OidRegistro."'";
        $ObjConexion->query($EliminarMaterial);

        $j = 0;
        $ListaMaterialO = count($ListaMaterial);

        while($j < $ListaMaterialO){

            $GuardarMaterial = "INSERT INTO Qx_MaterialSolicitud(MaterialOid,SolicitudOid,usu_registro)
                               VALUES('".$ListaMaterial[$j]."','".$OidRegistro."','".$_SESSION['usuario']."')";
            $ObjConexion ->query($GuardarMaterial);

            $j++;
        }
        
        $ObjConexion ->cerrarConexion();
    }
    
    function ConsultaProgramacion($Documento,$FechaInicial,$FechaFinal,$EstadoTipo,$EstadoQx){
        
        $ObjConexion = new Conexion();
        
        if ($EstadoTipo == 4){
            echo 'Consolidado';
            
        }else{
            $Consultar = "(SELECT SUM(DiasFin) AS DIAS FROM Qx_EstadosQuirofano AS A INNER JOIN Qx_EstadosEnCirugia AS C ON A.Oid=C.EstadosQx INNER JOIN Qx_TipoCirugia AS B ON C.TipoCirugia=B.Oid WHERE B.Oid IN ('".$EstadoTipo."'));";
            $Resultado = $ObjConexion->query($Consultar);

            while ($Result = mssql_fetch_array($Resultado)){
                $Dias = $Result['DIAS'];
            }
                
            if($EstadoQx == 0){
                
                $ConsultaEstadoQx =  "";
                
            }else{
                
                $ConsultaEstadoQx =  "AND (D.EstadoQxOid = '".$EstadoQx."')";
                
            }
            if($Documento == ""){
                
                $ConsultaDocumento ="";
                
            }else{
                $ConsultaDocumento = "AND (D.PacienteDocumento='".$Documento."')";
            }
            if($FechaInicial == '' && $FechaFinal == ''){
                
                $ConsultaFecha = "AND ((D.FechaRegistro BETWEEN  CONVERT(DATETIME, GETDATE() - 30, 102) AND  GETDATE()))";
                
            }else{
                
                $ConsultaFecha = "AND ((D.FechaRegistro BETWEEN  '".$FechaInicial."' AND '".$FechaFinal."'))";
            }
            
            $Select ="SELECT  F.PACPRINOM+' '+F.PACSEGNOM+' '+F.PACPRIAPE+' '+F.PACSEGAPE AS 'NombrePaciente', D.PacienteDocumento AS 'DocumentoPaciente',
                      D.FechaSolicitudEps AS 'FechaEps',D.FechaVencimiento AS 'FechaVencimiento',
                      K.GDENOMBRE  AS 'Eps',H.GASNOMBRE AS 'AreaServicio',B.Nombre 'Estado',D.FechaRegistro AS  'FechaRegistro',
                      D.DoctorOId,D.TelefonoPpal,D.DireccionPpal,D.AreaServicioOid,D.EstadoQxOid AS  'EstadoQxOid',SUM((B.DiasFin)) AS 'TiempoTramite',
                      D.ReservaCamaUci AS  'ReservaCamaUci', D.RequiereSangre AS 'RequiereSangre',D.ChequeoPreAnestecia AS 'ChequeoPreAnestecia',D.CorreoElectronico AS 'CorreoElectronico',D.FechaAutorizacion AS 'FechaAutorizacion',D.FechaSalida AS 'FechaSalida ',
                      D.FechaTramite AS  'FechaTramites',D.ObservacionGral AS 'ObservacionGral ', DAY(D.FechaRegistro) As 'TiempoInicio' ,$Dias +(Cast(DAY(D.FechaRegistro) As int)) As  'TiempoFinal',
                      Cast ((((SELECT DAY(GETDATE() ))*100))/($Dias+DAY(D.FechaRegistro))As Money) As'PorcentajeCumplido',I.GEEDESCRI AS 'ESPECIALIDAD',
                      B.Url AS 'URL',D.TipoCirugiaOid,D.Oid AS 'CodigoQx',D.Insumos AS 'Insumos',D.MaterialOsteosintesis AS 'MaterialOsteosintesis',E.ProgramacionOid AS 'CodigoProgramacion'
                      FROM Qx_SolicitudProgramacion AS D INNER JOIN	
                      Qx_EstadosQuirofano AS B ON D.EstadoQxOid=B.Oid
                      INNER JOIN Qx_TipoCirugia AS C ON D.TipoCirugiaOid=C.Oid
                      LEFT OUTER JOIN Qx_ProgramacionCirugia AS E ON D.Oid=E.SolicitudOid
                      INNER JOIN DGempres95..GENPACIEN AS F ON D.PacienteOid=F.OID
                      LEFT JOIN DGempres95..GENDETCON AS G ON F.GENDETCON=F.OID
                      LEFT jOIN DGempres95..GENARESER AS H ON D.AreaServicioOid=H.OID
                      LEFT join DGempres95..GENESPECI AS I ON D.EspecialidadOid=I.OID
                      LEFT JOIN  DGempres95..GENDETCON  AS K ON F.GENDETCON=K.OID
                      INNER JOIN Qx_HistorialSolicitud AS J ON D.OID=J.SolicitudCirugiaOid
                      WHERE D.TipoCirugiaOid =".$EstadoTipo." $ConsultaEstadoQx $ConsultaDocumento $ConsultaFecha
                      GROUP BY D.PacienteOid ,D.FechaRegistro,E.ProgramacionOid,F.PACPRINOM+' '+F.PACSEGNOM+' '+F.PACPRIAPE+' '+F.PACSEGAPE,D.PacienteDocumento ,
                      D.FechaSolicitudEps ,D.FechaVencimiento,
                      G.GDENOMBRE ,H.GASNOMBRE,D.DoctorOId, D.TelefonoPpal,D.DireccionPpal,D.AreaServicioOid,
                      I.GEEDESCRI,D.TipoCirugiaOid,D.EstadoQxOid,D.ReservaCamaUci,D.RequiereSangre,D.FechaAutorizacion ,D.FechaSalida,
                      D.ChequeoPreAnestecia,D.CorreoElectronico,D.FechaAutorizacion,D.FechaSalida,
                      D.FechaTramite,D.ObservacionGral,D.Oid,D.Insumos,D.MaterialOsteosintesis, E.ProgramacionOid,
                      B.Url,B.Nombre,K.GDENOMBRE ORDER BY D.EstadoQxOid DESC";
                $result = $ObjConexion->query($Select);
                
            while ($row = mssql_fetch_array($result)){
                   $NOMBREPACIENTE = $row[0];
                   $DOCUMENTOPACIENTE = $row[1];
                   $FECHAEPS = $row[2];
                   $FECHAVENCIMIENTO = $row[3];
                   $EPS = $row[4];
                   $AREASERVICIO = $row[5];
                   $Estado = $row[6];
                   $FECHAREGISTRO = $row[7];	
                   $DoctorOId = $row[8];	
                   $TelefonoPpal = $row[9];
                   $DireccionPpal = $row[10];
                   $AreaServicioOid = $row[11];		
                   $EstadoQxOid = $row[12];
                   $TiempoTramite = $row[13];
                   $ReservaCamaUci = $row[14];
                   $RequiereSangre = $row[15];
                   $ChequeoPreAnestecia = $row[16];	
                   $CorreoElectronico = $row[17];
                   $FechaAutorizacion = $row[18];			
                   $FechaSalida = $row[19];
                   $FechaTramite = $row[20];
                   $ObservacionGral = $row[21];		
                   $TIEMPOINICIAl = $row[22];	
                   $TIEMPOFINAL = $row[23];
                   $PORCENTAJECUMPLIDO = $row[24];
                   $ESPECIALIDAD = $row[25];
                   $Url = $row[26];		
                   $TipoCirugia = $row[27];
                   $CodigoQx = $row[28];
                   $Insumos = $row[29];	
                   $Material = $row[30];
                   $CodigoProgramacion = $row[31];

                $Lista[] = array_map(utf8_encode, array('NOMBREPACIENTE'=>$NOMBREPACIENTE,'DOCUMENTOPACIENTE'=>$DOCUMENTOPACIENTE,'FECHAEPS'=>$FECHAEPS,	
                                                        'FECHAVENCIMIENTO'=>$FECHAVENCIMIENTO,'FECHAREGISTRO'=>$FECHAREGISTRO,'EPS'=>$EPS,'AREASERVICIO'=>$AREASERVICIO,
                                                        'Estado'=>$Estado,'TIEMPOINICIO'=>$TiempoTramite,'DoctorOId'=>$DoctorOId,'TelefonoPpal'=>$TelefonoPpal,
                                                        'DireccionPpal'=>$DireccionPpal,'AreaServicioOid'=>$AreaServicioOid,'EstadoQxOid'=>$EstadoQxOid,'FechaTramite'=>$FechaTramite,
                                                        'ReservaCamaUci'=>$ReservaCamaUci,'RequiereSangre'=>$RequiereSangre,'ChequeoPreAnestecia'=>$ChequeoPreAnestecia,'CorreoElectronico'=>$CorreoElectronico,
                                                        'FechaAutorizacion'=>$FechaAutorizacion,'FechaSalida'=>$FechaSalida,'FechaTramites'=>$FechaTramites,'ObservacionGral'=>$ObservacionGral,
                                                        'TIEMPOINICIAl'=>$TIEMPOINICIAl,'TIEMPOFINAL'=>$TIEMPOFINAL,'PORCENTAJECUMPLIDO'=>$PORCENTAJECUMPLIDO,'ESPECIALIDAD'=>$ESPECIALIDAD,'Url'=>$Url,
                                                        'TipoCirugia'=>$TipoCirugia,'CodigoQx'=>$CodigoQx,'Insumos'=>$Insumos,'Material'=>$Material,'CodigoProgramacion'=>$CodigoProgramacion));
         
            }  
        
        print_r(json_encode($Lista));
        }
        $ObjConexion ->cerrarConexion();
    }
    
    function ExportarProgramacion($Documento,$FechaInicial,$FechaFinal,$EstadoTipo,$EstadoQx){
         header ('Content-type: application/vnd.ms-excel');
         header ("Content-Disposition: attachment;filename=reporte_".date('d-m-y').".xls");  
         header ('Pragma: no-cache');
         header ('Expires: 0');
         // http://programarenphp.wordpress.com

        /******** CONECTAR CON BASE DE DATOS **************** */ 
        
        $ObjConexion = new Conexion();

        if ($EstadoTipo == 4){
            echo 'Consolidado';
            
        }else{
            $Consultar = "(SELECT SUM(DiasFin) AS DIAS FROM Qx_EstadosQuirofano AS A INNER JOIN Qx_EstadosEnCirugia AS C ON A.Oid=C.EstadosQx INNER JOIN Qx_TipoCirugia AS B ON C.TipoCirugia=B.Oid WHERE B.Oid IN ('".$EstadoTipo."'));";
            $Resultado = $ObjConexion->query($Consultar);

            while ($Result = mssql_fetch_array($Resultado)){
                $Dias = $Result['DIAS'];
            }
                
            if($EstadoQx == 0){
                
                $ConsultaEstadoQx =  "";
                
            }else{
                
                $ConsultaEstadoQx =  "AND (D.EstadoQxOid = '".$EstadoQx."')";
                
            }
            if($Documento == ""){
                
                $ConsultaDocumento ="";
                
            }else{
                $ConsultaDocumento = "AND (D.PacienteDocumento='".$Documento."')";
            }
            if($FechaInicial == '' && $FechaFinal == ''){
                
                $ConsultaFecha = "AND ((D.FechaRegistro BETWEEN  CONVERT(DATETIME, GETDATE() - 30, 102) AND  GETDATE()))";
                
            }else{
                
                $ConsultaFecha = "AND ((D.FechaRegistro BETWEEN  '".$FechaInicial."' AND '".$FechaFinal."'))";
            }
            
            $Select ="SELECT  F.PACPRINOM+' '+F.PACSEGNOM+' '+F.PACPRIAPE+' '+F.PACSEGAPE AS 'NombrePaciente', D.PacienteDocumento AS 'DocumentoPaciente',
                      D.FechaSolicitudEps AS 'FechaEps',D.FechaVencimiento AS 'FechaVencimiento',
                      K.GDENOMBRE  AS 'Eps',H.GASNOMBRE AS 'AreaServicio',B.Nombre 'Estado',D.FechaRegistro AS  'FechaRegistro',
                      D.DoctorOId,D.TelefonoPpal,D.DireccionPpal,D.AreaServicioOid,D.EstadoQxOid AS  'EstadoQxOid',SUM((B.DiasFin)) AS 'TiempoTramite',
                      D.ReservaCamaUci AS  'ReservaCamaUci', D.RequiereSangre AS 'RequiereSangre',D.ChequeoPreAnestecia AS 'ChequeoPreAnestecia',D.CorreoElectronico AS 'CorreoElectronico',D.FechaAutorizacion AS 'FechaAutorizacion',D.FechaSalida AS 'FechaSalida ',
                      D.FechaTramite AS  'FechaTramites',D.ObservacionGral AS 'ObservacionGral ', DAY(D.FechaRegistro) As 'TiempoInicio' ,$Dias +(Cast(DAY(D.FechaRegistro) As int)) As  'TiempoFinal',
                      Cast ((((SELECT DAY(GETDATE() ))*100))/($Dias+DAY(D.FechaRegistro))As Money) As'PorcentajeCumplido',I.GEEDESCRI AS 'ESPECIALIDAD',
                      B.Url AS 'URL',D.TipoCirugiaOid,D.Oid AS 'CodigoQx',D.Insumos AS 'Insumos',D.MaterialOsteosintesis AS 'MaterialOsteosintesis',E.ProgramacionOid AS 'CodigoProgramacion'
                      FROM Qx_SolicitudProgramacion AS D INNER JOIN	
                      Qx_EstadosQuirofano AS B ON D.EstadoQxOid=B.Oid
                      INNER JOIN Qx_TipoCirugia AS C ON D.TipoCirugiaOid=C.Oid
                      LEFT OUTER JOIN Qx_ProgramacionCirugia AS E ON D.Oid=E.SolicitudOid
                      INNER JOIN DGempres95..GENPACIEN AS F ON D.PacienteOid=F.OID
                      LEFT JOIN DGempres95..GENDETCON AS G ON F.GENDETCON=F.OID
                      LEFT jOIN DGempres95..GENARESER AS H ON D.AreaServicioOid=H.OID
                      LEFT join DGempres95..GENESPECI AS I ON D.EspecialidadOid=I.OID
                      LEFT JOIN  DGempres95..GENDETCON  AS K ON F.GENDETCON=K.OID
                      INNER JOIN Qx_HistorialSolicitud AS J ON D.OID=J.SolicitudCirugiaOid
                      WHERE D.TipoCirugiaOid =".$EstadoTipo." $ConsultaEstadoQx $ConsultaDocumento $ConsultaFecha
                      GROUP BY D.PacienteOid ,D.FechaRegistro,E.ProgramacionOid,F.PACPRINOM+' '+F.PACSEGNOM+' '+F.PACPRIAPE+' '+F.PACSEGAPE,D.PacienteDocumento ,
                      D.FechaSolicitudEps ,D.FechaVencimiento,
                      G.GDENOMBRE ,H.GASNOMBRE,D.DoctorOId, D.TelefonoPpal,D.DireccionPpal,D.AreaServicioOid,
                      I.GEEDESCRI,D.TipoCirugiaOid,D.EstadoQxOid,D.ReservaCamaUci,D.RequiereSangre,D.FechaAutorizacion ,D.FechaSalida,
                      D.ChequeoPreAnestecia,D.CorreoElectronico,D.FechaAutorizacion,D.FechaSalida,
                      D.FechaTramite,D.ObservacionGral,D.Oid,D.Insumos,D.MaterialOsteosintesis, E.ProgramacionOid,
                      B.Url,B.Nombre,K.GDENOMBRE ORDER BY D.EstadoQxOid DESC";
            $result = $ObjConexion->query($Select);
        
        }
        // verificamos que no haya error 
        if (! $result){
        echo "La consulta SQL contiene errores.".mssql_error();
        exit();
        }else {
         echo utf8_decode("<table border >
            <tr>
                <td colspan='10' align='center'>
                    <b><font size=5>Listado De Cirugía
                </td>
            </tr>
            <tr>
                <td align='center'>
                    <b>Documento
                </td>
                <td align='center'>
                    <b>Nombre
                </td>
                <td align='center'>
                    <b>Fecha Solicitud
                </td>
                <td align='center'>
                   <b>Fecha Vencimiento
                </td>
                <td align='center'>
                   <b>Fecha Registro
                </td>
                <td align='center'>
                    <b>Entidad
                </td>
                <td align='center'>
                    <b>Especialidad
                </td>
                <td align='center'>
                    <b>Área Servicio
                </td>
                <td align='center'>
                    <b>Estado Solicitud
                </td>
                <td align='center'>
                    <b>Indicador Cirugía
                </td>
            </tr>");
        
            //obtenemos los datos resultado de la consulta 
            while ($row = mssql_fetch_row($result))
            {

            echo "<tr><td width=\"auto\"><font face=\"verdana\">" . 
            $row[1] . "</font></td>";
            echo "<td width=\"auto\"><font face=\"verdana\">" . 
            $row[0] . "</font></td>";
            echo "<td width=\"auto\"><font face=\"verdana\">" . 
            $row[2] . "</font></td>";
            echo "<td width=\"auto\"><font face=\"verdana\">" . 
            $row[3] . "</font></td>";
            echo "<td width=\"auto\"><font face=\"verdana\">" . 
            $row[7] . "</font></td>";
            echo "<td width=\"auto\"><font face=\"verdana\">" . 
            $row[4] . "</font></td>";
            echo "<td width=\"auto\"><font face=\"verdana\">" . 
            $row[25] . "</font></td>";
            echo "<td width=\"auto\"><font face=\"verdana\">" . 
            $row[5]. "</font></td>";
            echo "<td width=\"auto\"><font face=\"verdana\">" . 
            $row[6]. "</font></td>";
            echo "<td width=\"auto\"><font face=\"verdana\">" . 
            round($row[24]). "%</font></td></tr>"; 
            }
            echo "</table>";
        }
        $ObjConexion->cerrarConexion();
    }
    
    function EditarProgramacion($CodigoCirugia,$Cirujano,$TelefoPpal,$Direccion,$AreaSolicita,$EstadoProgramacion,$Insumo,$Material,$ReservaUCI,$ReservaSangre,$PreAnestesico,$ListaInsumo,$ListaMaterial,$CodigoProgramacion,$ListaCausa,$Descripcion,$Email){
        session_start();
        
        $ObjConexion = new Conexion();
        
        if ($EstadoProgramacion == 8){
            if($EstadoProgramacion == 13){
                 
                    $Consulta = ',FechaSalida = GETDATE()';
                    
                }else if($EstadoProgramacion == 5){
                    
                    $Consulta = ',FechaTramite = GETDATE()';
                    
                }else{
                    
                    $Consulta= '';
                }
                $Editar = "UPDATE Qx_SolicitudProgramacion
                           SET EstadoQxOid = '".$EstadoProgramacion."',
                              AreaServicioOid = '".$AreaSolicita."',
                              TelefonoPpal = '".$TelefoPpal."',
                              DireccionPpal = '".$Direccion."',
                              DoctorOId ='".$Cirujano."',
                              Insumos ='".$Insumo."',
                              MaterialOsteosintesis = '".$Material."',
                              ReservaCamaUci = '".$ReservaUCI."',
                              RequiereSangre ='".$ReservaSangre."',
                              ChequeoPreAnestecia = '".$PreAnestesico."',
                              CorreoElectronico = '".$Email."'    
                              $Consulta
                         WHERE Oid ='".$CodigoCirugia."'";
                $ObjConexion ->query($Editar);
                 
                $RegistrarSeguimiento = "INSERT INTO Qx_DetalleSeguimiento(SolicitudOid,FechaSeguimiento,Usu_Registra,Descripcion)
                                 VALUES('".$CodigoCirugia."',GETDATE(),'".$_SESSION['usuario']."','".$Descripcion."')";
                $ObjConexion->query($RegistrarSeguimiento);

                   $EliminarInsumo = "DELETE FROM Qx_InsumosSolicitud WHERE SolicitudOid ='".$CodigoCirugia."'";
                   $ObjConexion->query($EliminarInsumo);

                   if($Insumo == 1){
                       $i = 0;
                       $Lista = count($ListaInsumo);

                       while ($i < $Lista){

                           $GuardarInsumos = "INSERT INTO Qx_InsumosSolicitud(SolicitudOid,InsumosOid,usu_registro)
                                              VALUES ('".$CodigoCirugia."','".$ListaInsumo[$i]."','".$_SESSION['usuario']."')";
                           $ObjConexion ->query($GuardarInsumos);

                           $i++;
                       }
                   }

                   $EliminarMaterial = "DELETE FROM Qx_MaterialSolicitud WHERE SolicitudOid ='".$CodigoCirugia."'";
                   $ObjConexion->query($EliminarMaterial);

                   if($Material == 1){
                       $j = 0;
                       $ListaMaterialO = count($ListaMaterial);

                       while($j < $ListaMaterialO){

                           $GuardarMaterial = "INSERT INTO Qx_MaterialSolicitud(MaterialOid,SolicitudOid,usu_registro)
                                              VALUES('".$ListaMaterial[$j]."','".$CodigoCirugia."','".$_SESSION['usuario']."')";
                           $ObjConexion ->query($GuardarMaterial);

                           $j++;
                       }
                   }
                if($EstadoProgramacion == 7){
                    
                   $EliminarCodigo = "DELETE FROM Qx_ProgramacionCirugia WHERE SolicitudOid = '".$CodigoCirugia."'";
                   $ObjConexion->query($EliminarCodigo);
                   $InsertarProgramacion = "INSERT INTO Qx_ProgramacionCirugia(SolicitudOid,ProgramacionOid)
                                            VALUES('".$CodigoCirugia."','".$CodigoProgramacion."')";
                   $ObjConexion ->query($InsertarProgramacion);

               }
                if($EstadoProgramacion == 8){

                    $Eliminar ="DELETE FROM Qx_CausasSolicitud WHERE SolicitudOid = '".$CodigoCirugia."'";
                    $ObjConexion ->query($Eliminar);

                       $l = 0;
                       $ListadoCausa = count($ListaCausa);

                       while($l < $ListadoCausa){

                           $GuardarCausa = "INSERT INTO Qx_CausasSolicitud(OidCausa,SolicitudOid)VALUES('".$ListaCausa[$l]."','".$CodigoCirugia."')";
                           $ObjConexion ->query($GuardarCausa);

                           $l++;
                       }

               }
              print_r(json_encode(1));
        }else{
            $ValidarProcedimiento = "SELECT COUNT(*) AS TOTALPROCEDIMIENTO 
                                     FROM Qx_Procedimiento 
                                     WHERE SolicitudCirugiaOid = '".$CodigoCirugia."'";
        $Resultado = $ObjConexion->query($ValidarProcedimiento);
        
        while ($Result = mssql_fetch_array($Resultado)){
            
                $Procedimiento = $Result['TOTALPROCEDIMIENTO'] ;
        }
        if($Procedimiento == 0){
            
            print_r(json_encode(2));
            
        }else{
                if($EstadoProgramacion == 13){
                 
                    $Consulta = ',FechaSalida = GETDATE()';
                    
                }else if($EstadoProgramacion == 5){
                    
                    $Consulta = ',FechaTramite = GETDATE()';
                    
                }else{
                    
                    $Consulta= '';
                }
                $Editar = "UPDATE Qx_SolicitudProgramacion
                           SET EstadoQxOid = '".$EstadoProgramacion."',
                              AreaServicioOid = '".$AreaSolicita."',
                              TelefonoPpal = '".$TelefoPpal."',
                              DireccionPpal = '".$Direccion."',
                              DoctorOId ='".$Cirujano."',
                              Insumos ='".$Insumo."',
                              MaterialOsteosintesis = '".$Material."',
                              ReservaCamaUci = '".$ReservaUCI."',
                              RequiereSangre ='".$ReservaSangre."',
                              ChequeoPreAnestecia = '".$PreAnestesico."',
                              CorreoElectronico = '".$Email."'    
                              $Consulta
                         WHERE Oid ='".$CodigoCirugia."'";
                $ObjConexion ->query($Editar);
                
                $RegistrarSeguimiento = "INSERT INTO Qx_DetalleSeguimiento(SolicitudOid,FechaSeguimiento,Usu_Registra,Descripcion)
                                 VALUES('".$CodigoCirugia."',GETDATE(),'".$_SESSION['usuario']."','".$Descripcion."')";
                $ObjConexion->query($RegistrarSeguimiento);

                   $EliminarInsumo = "DELETE FROM Qx_InsumosSolicitud WHERE SolicitudOid ='".$CodigoCirugia."'";
                   $ObjConexion->query($EliminarInsumo);

                   if($Insumo == 1){
                       $i = 0;
                       $Lista = count($ListaInsumo);

                       while ($i < $Lista){

                           $GuardarInsumos = "INSERT INTO Qx_InsumosSolicitud(SolicitudOid,InsumosOid,usu_registro)
                                              VALUES ('".$CodigoCirugia."','".$ListaInsumo[$i]."','".$_SESSION['usuario']."')";
                           $ObjConexion ->query($GuardarInsumos);

                           $i++;
                       }
                   }

                   $EliminarMaterial = "DELETE FROM Qx_MaterialSolicitud WHERE SolicitudOid ='".$CodigoCirugia."'";
                   $ObjConexion->query($EliminarMaterial);

                   if($Material == 1){
                       $j = 0;
                       $ListaMaterialO = count($ListaMaterial);

                       while($j < $ListaMaterialO){

                           $GuardarMaterial = "INSERT INTO Qx_MaterialSolicitud(MaterialOid,SolicitudOid,usu_registro)
                                              VALUES('".$ListaMaterial[$j]."','".$CodigoCirugia."','".$_SESSION['usuario']."')";
                           $ObjConexion ->query($GuardarMaterial);

                           $j++;
                       }
                   }
                if($EstadoProgramacion == 7){
                    
                   $EliminarCodigo = "DELETE FROM Qx_ProgramacionCirugia WHERE SolicitudOid = '".$CodigoCirugia."'";
                   $ObjConexion->query($EliminarCodigo);
                   $InsertarProgramacion = "INSERT INTO Qx_ProgramacionCirugia(SolicitudOid,ProgramacionOid)
                                            VALUES('".$CodigoCirugia."','".$CodigoProgramacion."')";
                   $ObjConexion ->query($InsertarProgramacion);

               }
                if($EstadoProgramacion == 8){

                    $Eliminar ="DELETE FROM Qx_CausasSolicitud WHERE SolicitudOid = '".$CodigoCirugia."'";
                    $ObjConexion ->query($Eliminar);

                       $l = 0;
                       $ListadoCausa = count($ListaCausa);

                       while($l < $ListadoCausa){

                           $GuardarCausa = "INSERT INTO Qx_CausasSolicitud(OidCausa,SolicitudOid)VALUES('".$ListaCausa[$l]."','".$CodigoCirugia."')";
                           $ObjConexion ->query($GuardarCausa);

                           $l++;
                       }

               }
               print_r(json_encode(3));
        }
        
      }
         
        $ObjConexion ->cerrarConexion();
    }
    
    function HistoricoProgramacion(){
        $ObjConexion = new Conexion();
        
        $ConsultarCausa = "SELECT * FROM Qx_HistorialQuirofano";
        $Result = $ObjConexion ->query($ConsultarCausa);
        
        while ($Resultado = mssql_fetch_array($Result)){
            
            $Lista[] = array_map(utf8_encode, $Resultado);
        }
        
        print_r(json_encode($Lista));
        
        $ObjConexion ->cerrarConexion();
    }
    
    function PacientesTablero(){
        
        $Conexion = new Conexion();
        
        $Select = "select * from Qx_TablerosQuirofano";
        $Respuesta = $Conexion->query($Select);

        while ($Respuesta2 = mssql_fetch_array($Respuesta)){
            $lista[] = array_map(utf8_encode,$Respuesta2);
        }

         print_r(json_encode($lista));
        
        $Conexion->cerrarConexion();
        
    }
}

?>
